﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using System.Data.Linq.SqlClient;
using DataLayer.dbml;
using System.Data;
using DataLayer.Utilities;

namespace DataLayer.Controller
{
    /// <summary>
    /// Clase responsable del manejo de los comentarios de los casos
    /// </summary>
    public class CaseCommentController : GenericController<COMENTARIOS_CASO, DataClassesDataContext>
    {
      
        /// <summary>
        /// Creación de comentario desde SF
        /// </summary>
        /// <param name="idComentarioSFDC"></param>
        /// <param name="codigoComentario"></param>
        /// <param name="tipoComentario"></param>
        /// <param name="descripcion"></param>
        /// <param name="fechaComentario"></param>
        /// <param name="idCasoSFDC"></param>
        /// <returns></returns>
        public static string Insert(string idComentarioSFDC, string codigoComentario, string tipoComentario, string descripcion, DateTime fechaComentario, string idCasoSFDC)
        {
            string statusWS = PropertiesApp.StatusWS.Exitosa.ToString();
            string statusObservation = string.Empty;

            try
            {
                COMENTARIOS_CASO CaseComment = new COMENTARIOS_CASO() { ID_COMENTARIO = idComentarioSFDC, ID_CASOSDFC = idCasoSFDC, TIPO_COMENTARIO = tipoComentario, DESCRIPCION = descripcion, FECHA_COMENTARIO = fechaComentario, PERSONA_REALIZA_COMENTARIO = codigoComentario };
                Insert(CaseComment);
            }
            catch (Exception EX)
            {
                statusWS = PropertiesApp.StatusWS.Fallida.ToString();
                statusObservation = "No se pudo insertar el objeto Caso, revise los parametros.";
                LogErrorController.Insert(PropertiesApp.Error.CaseComment, EX.ToString());
            }


            XElement xmlData = new XElement("result");

            xmlData.Add(new XElement("TipoTransaccion", "CREACION COMENTARIO CASO"),
                    new XElement("ElementoEnviado", new XElement("idComentarioSFDC", idComentarioSFDC),
                                                 new XElement("codigoComentario", codigoComentario),
                                                 new XElement("tipoComentario", tipoComentario),
                                                 new XElement("descripcion", descripcion),
                                                 new XElement("fechaComentario", fechaComentario),
                                                 new XElement("idCasoSFDC", idCasoSFDC)),
                    new XElement("EstadoTransaccion", statusWS),
                    new XElement("Observaciones", statusObservation),
                    new XElement("FechaTransaccion", DateTime.Now.ToString()));

            return xmlData.ToString();
               
        }

    }
}